/*************************************************************************
    > File Name: 1.daemon.c
    > Author: Ykk
    > Mail: 3393579535@qq.com 
    > Created Time: 2023年05月07日 星期日 21时22分25秒
 ************************************************************************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>

//创建守护进程
int main()
{
	int ret = -1;
	pid_t pid = -1;
	//1.创建子进程，父进程退出
	pid = fork();
	if(-1 == pid)
	{
		perror("fork");
		return 1;
	}
	if(pid > 0)
	{
		exit(0);//父进程退出
	}
	//2.创建新的会话
	pid = setsid();
	if(-1 == pid)
	{
		perror("setsid");
		return 1;
	}
	//3.改变当前工作目录(chair)
	ret = chdir("/home/ykk/learn/3.Processes/4.Process_groups_and_daemons/");
	if(-1 == ret)
	{
		perror("chdir");
		return 1; 
	}
	//4.设置权限掩码
	umask(0);
	//5.关闭文件描述符
	close(STDIN_FILENO);
	close(STDOUT_FILENO);
	close(STDERR_FILENO);
	//6.执行核心的任务
	//每隔一秒钟输出当前时间到
	while(1)
	{
		system("date >> txt");
		sleep(1);
	}
	return 0;
}
